package br.com.beautycenter.view;

import br.com.beautycenter.Funcionalidades.Bean;
import br.com.beautycenter.Funcionalidades.Biometria.CadastrarDigital;
import br.com.beautycenter.Funcionalidades.Biometria.VariaveisBiometria;
import br.com.beautycenter.Funcionalidades.Swing;
import br.com.beautycenter.Funcionalidades.Validacoes;
import br.com.beautycenter.DAO.PersisteEndereco;
import br.com.beautycenter.DAO.PersisteFuncionario;
import br.com.beautycenter.DAO.PersisteCliente;
import br.com.beautycenter.DAO.PersistePacoteTratamento;
import br.com.beautycenter.DAO.PersisteSessao;
import br.com.beautycenter.DAO.PersisteTipoTratamento;
import br.com.beautycenter.DAO.PersisteTratamento;
import br.com.beautycenter.bean.Cargo;
import br.com.beautycenter.bean.Endereco;
import br.com.beautycenter.bean.Funcionario;
import br.com.beautycenter.bean.Cliente;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.text.MaskFormatter;

public class CadastroCliente extends javax.swing.JFrame {
    
    PersisteCliente persisteCliente = new PersisteCliente();
    PersisteFuncionario persisteFuncionario = new PersisteFuncionario();
    PersisteEndereco persisteEndereco = new PersisteEndereco();
    PersistePacoteTratamento persistePacote = new PersistePacoteTratamento();
    PersisteTratamento persisteTratamento = new PersisteTratamento();
    PersisteSessao persisteSessao = new PersisteSessao();
    PersisteTipoTratamento persisteTipo = new PersisteTipoTratamento();
    
    Cargo cargo = new Cargo();
    Funcionario funcionario = new Funcionario();
    
    Cliente cliente = new Cliente();
    Cliente pacienteTemp = new Cliente();
    
    Endereco endereco = new Endereco();
    Endereco enderecoTemp = new Endereco();
    
    
    MaskFormatter mascaraCep;
    MaskFormatter mascaraCpf;
    MaskFormatter mascaraTelefone;
    
    String caminhoImagem = "";
        
    static List<Cliente> listaClientes = new ArrayList<Cliente>(); //lista com todos os Pacientes
    static List<Funcionario> listaFuncionarios = new ArrayList<Funcionario>(); //lista com todos os funcionários
    
    /**
     * operacao = -1 -> não faz nada
     * operacao = 0 -> salvar
     * operacao = 1 -> atualizar
     * operacao = 2 -> excluir
     */
    int operacao = -1; 
    int posicao = -1;
    boolean mudouAtivo = false;
    
    /**
     * Preenche o formulário com os dados do cliente. O parâmetro é a posição do item na lista
     * @param posicao 
     */
    public void exibirCliente(){
    
        if(listaClientes.isEmpty()){
            novo();
            return;
        }
        
        limparCampos();
        
        txtCodigo.setText(String.valueOf(listaClientes.get(posicao).getIdPessoa()));
        txtNome.setText(listaClientes.get(posicao).getNome());
        
        //endereço
        txtEndereco.setText(listaClientes.get(posicao).getEndereco().getLogradouro());
        txtNumero.setText(listaClientes.get(posicao).getEndereco().getNumero());
        txtBairro.setText(listaClientes.get(posicao).getEndereco().getBairro());
        txtCidade.setText(listaClientes.get(posicao).getEndereco().getCidade());
        txtCEP.setText(listaClientes.get(posicao).getEndereco().getCep());
        
        //dados pessoais
        if(listaClientes.get(posicao).getDtNascimento() != null){
            jDateNascimento.setDate(listaClientes.get(posicao).getDtNascimento());
        }
        
        txtCPF.setText(listaClientes.get(posicao).getCpf());
        txtRG.setText(listaClientes.get(posicao).getRg());
        txtTelefoneFixo.setText(listaClientes.get(posicao).getTelefoneFixo());
        txtTelefoneCelular.setText(listaClientes.get(posicao).getTelefoneCelular());
        txtTelefoneComercial.setText(listaClientes.get(posicao).getTelefoneComercial());
        txtEmail.setText(listaClientes.get(posicao).getEmail());
        
        //foto
        if(listaClientes.get(posicao).getFoto() != null){
            Image banco = Toolkit.getDefaultToolkit().createImage(listaClientes.get(posicao).getFoto());
            banco = banco.getScaledInstance(labelFoto.getWidth(), labelFoto.getHeight(), Image.SCALE_DEFAULT);
            ImageIcon image = new ImageIcon(banco);
            labelFoto.setIcon(image);
        }else{
            labelFoto.setIcon(null);
        }
        
        //dados
        txtProfissao.setText(listaClientes.get(posicao).getProfissao());
        jRadioFilhosSim.setSelected(listaClientes.get(posicao).isFilhos());
        txtQtdFilhos.setText(String.valueOf(listaClientes.get(posicao).getQtdFilhos()));
        txtMedicoResponsavel.setText(listaClientes.get(posicao).getMedicoResponsavel());
        
        jRadioFilhosSim.setSelected(listaClientes.get(posicao).isAtivo());
        txtObservacao.setText(listaClientes.get(posicao).getObservacao());
        
        txtQueixaPrincipal.setText(listaClientes.get(posicao).getQueixaPrincipal());
        
        //verifica se o cliente está inativo, se estiver aparece o jlabel
        if(!listaClientes.get(posicao).isAtivo()){
            jLClienteDesativado.setVisible(true);
            jLCliqueAqui.setVisible(true);
        }else{
            jLClienteDesativado.setVisible(false);
            jLCliqueAqui.setVisible(false);
        }
        
        desativarCampos();
        
        jLabelTextoDadosCliente.setVisible(true);
        jLabelTextoDadosCliente.setEnabled(true);
        
        jLabelLinkDadosCliente.setVisible(true);
        jLabelLinkDadosCliente.setEnabled(true);
        
    }
    
    /**
    * Quanto clicar em Novo ou Editar ativará os botões: <br/>
    * btnSalvar<br/>
    * btnCancelar<br/>
    * btnSair<br/>
    */
    public void ativarBotoesNovoEditarExcluir(){
        Swing.desativarCampos(jPainelBotoes.getComponents());
        btnSalvar.setEnabled(true);
        btnCancelar.setEnabled(true);
        btnSair.setEnabled(true);
    }
    
    /**
    * Inicialmente os botões ativos serão: <br/>
    * btnNovo<br/>
    * btnEditar<br/>
    * btnPesquisar<br/>
    * btnSair<br/>
    */
    public void ativarBotoesIniciar(){
        Swing.desativarCampos(jPainelBotoes.getComponents());
        
        //se a lista estiver vazia, cria um novo
        if(listaClientes.isEmpty()){
            novo();
        }else if(posicao < 0){
            btnNovo.setEnabled(true);
            btnPesquisar.setEnabled(true);
            btnSair.setEnabled(true);
        }else {
            btnNovo.setEnabled(true);
            btnPesquisar.setEnabled(true);
            btnSair.setEnabled(true);
            btnEditar.setEnabled(true);
            btnExcluir.setEnabled(true);
        }
    }
     
    public void ativarCampos(){
        Swing.ativarCampos(jPanelPaciente.getComponents());
        Swing.ativarCampos(jPainelDados.getComponents());
        Swing.ativarCampos(jPainelPerfilCliente.getComponents());
        Swing.ativarCampos(jPanelIntoBiometria.getComponents());
        Swing.ativarCampos(jPanelObservacoes.getComponents());

        jLabelQueixaPrincipal.setEnabled(true);
        txtQueixaPrincipal.setEnabled(true);
        txtCodigo.setEnabled(false);
        txtQtdFilhos.setEnabled(false);
    }
     
    public void desativarCampos(){
        Swing.desativarCampos(jPanelPaciente.getComponents());
        Swing.desativarCampos(jPainelDados.getComponents());
        Swing.desativarCampos(jPainelPerfilCliente.getComponents());
        Swing.desativarCampos(jPanelIntoBiometria.getComponents());
        Swing.desativarCampos(jPanelObservacoes.getComponents());
    }
     
    public void limparCampos(){
        jLabelTextoDadosCliente.setVisible(false);
        jLabelLinkDadosCliente.setVisible(false);
        
        Swing.zerarCampos(jPanelPaciente.getComponents());
        Swing.zerarCampos(jPainelPerfilCliente.getComponents());
        Swing.zerarCampos(jPainelDados.getComponents());
        txtCidade.setText("Santos Dumont");
        txtCEP.setText("36.240-000");
    }
    
    public void zerarDatas(){
        jDateNascimento.setDate(null);
    }
     
    /**
     * Inicializa a tela fazendo as seguintes operações: <br/><br/>
     * - Preenche o combo cargo.<br/>
     * - Popula a lista de funcionários com todos os funcionários.<br/>
     * - desativa todos os campos do formulário.<br/>
     * - ativa os botões (caso não tenha funcionário cadastrado o método novo() é chamado).<br/>
     * - limpa os campos.<br/>
     * - inicializa as mascaras para os campos  formatados.
     */
    public void inicializarTela(){
        jLClienteDesativado.setVisible(false);
        jLCliqueAqui.setVisible(false);
        
        caminhoImagem = "";
        labelFoto.setIcon(null);
        listaClientes = persisteCliente.retornarClientes();
        desativarCampos();
        ativarBotoesIniciar();
        limparCampos();
        zerarDatas();
        Validacoes.inicializarMascaras();
    }
    
    /**
     * Verifica se o campo nome está vazio, com o auxílio do método trim(), que remove os espaços laterais.
     * Então, se uma pessoa colocar como nome "   ", vai constar como campo vazio.
     * 
     * @return 
     *  -true se tudo estiver ok
     * <br\>
     *  -false se o campo estiver vazio
     */
    public boolean validarNome(){
        if(!Validacoes.validarNome(txtNome.getText().trim())){
            JOptionPane.showMessageDialog(null, "Campo nome é obrigatório!");
            txtNome.requestFocus();
            return false;           
        }    
        pacienteTemp.setNome(txtNome.getText().trim());
        return true;
    }
    
    public boolean validarNumero(){
        if(Validacoes.validarNumero(txtNumero.getText().trim())){
            enderecoTemp.setNumero(txtNumero.getText().trim());
            return true;
        }return false;
    }
    
    /**
     * Insere os dados do endereço. Única validação de fato está no CEP.
     * @return 
     * 
     * <b>true</b> - Se o CEP estiver preenchido corretamente ou então vazio<br/>
     * <b>true</b> - Se o CEP estiver preenchido incorretamente
     */
    public boolean validarEndereco(){
        //verifica se contém alguma letra no campo número
        if(!validarNumero()) {
            return false;
        }
        
        //verifica se o cep é  válido, caso ele tenha sido preenchido
        if(!Validacoes.validarCep(txtCEP.getText())){
            return false;
        }else{
            enderecoTemp.setCep(txtCEP.getText());
        }
        enderecoTemp.setLogradouro(txtEndereco.getText().trim());
        enderecoTemp.setNumero(txtNumero.getText().trim());
        enderecoTemp.setBairro(txtBairro.getText().trim());
        enderecoTemp.setCidade(txtCidade.getText().trim());
        return true;
    }
    
    /**
     * Verifica se o campo CPF foi prenchido corretamente. Se não estiver preenchido, considera-se como se estivesse prenchido
     * incorretamente
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente(ou vazio)
     */
    public boolean validarCpf(){
        String CPF = txtCPF.getText().replace(".", "").replace("-", "").trim();
        
        if(!Validacoes.validarCpf(txtCPF.getText().trim(), operacao, persisteCliente)){
            txtCPF.requestFocus();
            return false;
        }else {
            pacienteTemp.setCpf(txtCPF.getText().trim());
            return true;
        }
    }
    
    /**
     * Verifica se o campo Telefone Fixo foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente(ou vazio)
     */
    
    public boolean validarTelefoneFixo(){
        if(Validacoes.validarTelefone(txtTelefoneFixo.getText().trim())){
            pacienteTemp.setTelefoneFixo(txtTelefoneFixo.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Telefone Fixo informado é inválido");
            txtTelefoneFixo.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se o campo Telefone Celular foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente
     */
    
    public boolean validarTelefoneCelular(){
        if(Validacoes.validarTelefone(txtTelefoneCelular.getText().trim())){
            pacienteTemp.setTelefoneCelular(txtTelefoneCelular.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Celular informado é inválido");
            txtTelefoneCelular.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se o campo Telefone Comercial foi prenchido corretamente. 
     * Se não estiver preenchido, considera-se como se estivesse prenchido incorretamente
     * 
     * @return 
     * <b>true</b> - Caso esteja preenchido corretamente<br/>
     * <b>false</b> - Caso esteja preenchido incorremente
     */
    
    public boolean validarTelefoneComercial(){
        if(Validacoes.validarTelefone(txtTelefoneComercial.getText().trim())){
            pacienteTemp.setTelefoneComercial(txtTelefoneComercial.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Telefone comercial informado é inválido");
            txtTelefoneComercial.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se o campo está vazio
     * @return 
     */
    public boolean validarProfissao(){
        if(Validacoes.validarNome(txtProfissao.getText().trim())){
            pacienteTemp.setProfissao(txtProfissao.getText().trim());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Campo profissao é obrigatório!");
            txtProfissao.requestFocus();
            return false;
        }
    }
    
    /**
     * Caso filhos estiver marcado como sim, será feita a verificação se foi preenchida a quantidade de filhos
     * @return 
     * true - quantidade de filhos preenchido corretamente ou então marcado como não. <br/>
     * fale - quantidade de filhos preenchido incorretamente.
     */
    public boolean validarFilhos(){
        if(!jRadioFilhosSim.isSelected()){
            pacienteTemp.setFilhos(false);
            pacienteTemp.setQtdFilhos(0);
            return true;
        }else if(jRadioFilhosSim.isSelected() && validarQuantidadeFilhos()){
            pacienteTemp.setFilhos(jRadioFilhosSim.isSelected());
            pacienteTemp.setQtdFilhos(Integer.valueOf(txtQtdFilhos.getText().trim()));
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Selecione a quantidade de filhos.");
            return false;
        }
    }
    
    /**
     * Verifica se a quantidade de filhos foi preenchida corretamente
     * @return 
     */
    public boolean validarQuantidadeFilhos(){
        if(Validacoes.validarCampoNumerico(txtQtdFilhos.getText().trim())){
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Preencha corretamente a quantidade de filhos.");
            txtQtdFilhos.requestFocus();
            return false;
        }
    }
    
    public boolean validarBiometria(){
        return true;
    }
    
    public boolean validarDataNascimento(){
        if(Validacoes.validarData(jDateNascimento.getDate(), false)){
            pacienteTemp.setDtNascimento(jDateNascimento.getDate());
            return true;
        }else{
            JOptionPane.showMessageDialog(null, "Data de nascimento não pode ser maior que a data atual.");
            jDateNascimento.requestFocus();
            return false;
        }
    }
    
    /**
     * Verifica se foi selecionado algum médico. Situação quase impossível de acontecer, mas que é possível: 
     * Dois médicos com o mesmo nome. Isso seria um grande problema, pois sempre escolhe o primeiro.
     * Comparação entre strings tem esse problema
     * @return 
     */
    public boolean validarMedico(){
        pacienteTemp.setMedicoResponsavel(txtMedicoResponsavel.getText().trim());
        return true;
    }
    
    public void novo(){
        operacao = 0;
        limparCampos(); //limpa os dados
        ativarCampos();//ativa os campos
        ativarBotoesNovoEditarExcluir();
        zerarDatas();
        
        //cria um novo funcionário
        //OBS: é ideia colocar o idPessoa(0), pois caso cadastrar mais de um usuário na mesma sessão, não vai da pau.
        cliente = new Cliente();
        cliente.setIdPessoa(0);
        
        endereco = new Endereco();
        endereco.setIdEndereco(0);
        
        cliente.setEndereco(endereco);
        txtNome.requestFocus();
        
        txtCodigo.setText(String.valueOf(persisteCliente.retornarMaxID()+1));
        txtCidade.setText("Santos Dumont");
        txtCEP.setText("36.240-000");
        
        Swing.desativarCampos(jPanelIntoBiometria.getComponents());
    }
    /**
     * Deixa a tela preparada para a atualização de um funcionário
     */
    
    public void editar(){
        jLabelTextoDadosCliente.setVisible(false);
        jLabelLinkDadosCliente.setVisible(false);
        
        operacao = 1;
        exibirCliente();
        ativarCampos();
        ativarBotoesNovoEditarExcluir();
        
        cliente = new Cliente();
        cliente = listaClientes.get(posicao);
        
        endereco = new Endereco();
        endereco = listaClientes.get(posicao).getEndereco();
        
        cliente.setEndereco(endereco);
        
        txtNome.requestFocus();
    }
    
    public void excluir(){
        int resposta = JOptionPane.showConfirmDialog(null, "Deseja realmente excluir esse paciente?");
        
        if(resposta == JOptionPane.OK_OPTION){
            listaClientes.get(posicao).setAtivo(false);
            persisteCliente.atualizar(listaClientes.get(posicao));
            exibirCliente();
        }
        
        operacao = -1;
    }
    
    /**
     * Trava a tela e exibe o cliente que estava antes
     */
    public void cancelar(){
        
        if(mudouAtivo){
            listaClientes.get(posicao).setAtivo(false);
            mudouAtivo = false;
        }
        posicao = -1;
        grupoFilhos.clearSelection();
        
        ativarBotoesIniciar();
        limparCampos();
        zerarDatas();
        desativarCampos();
        labelFoto.setIcon(null);
        
    }
    
    public boolean preencherCliente(){
        if(operacao == 2 && operacaoExcluir()){
            JOptionPane.showMessageDialog(null, "Cliente desativado com sucesso.");
            return true;
        }
        
        pacienteTemp = new Cliente();
        enderecoTemp = new Endereco();
            if(validarNome()
                && validarEndereco()
                //&& validarCpf() 
                && validarDataNascimento() 
                && validarTelefoneFixo() 
                && validarTelefoneCelular() 
                && validarTelefoneComercial() 
                && validarBiometria() 
                && validarFoto() 
                && validarFilhos() 
                && validarMedico()
                
                ){
            
            pacienteTemp.setEndereco(enderecoTemp);
            pacienteTemp.setRg(txtRG.getText().trim());
            pacienteTemp.setEmail(txtEmail.getText().trim());
            pacienteTemp.setObservacao(txtObservacao.getText().trim());
            pacienteTemp.setAtivo(true);
            pacienteTemp.setQueixaPrincipal(txtQueixaPrincipal.getText().trim());
            pacienteTemp.setIndicacao(txtIndicacao.getText().trim());
            pacienteTemp.setProfissao(txtProfissao.getText());
            
            //já que vai salvar, copia os dados para os originais
            Bean.copiarEndereco(enderecoTemp, endereco);
            Bean.copiarPaciente(pacienteTemp, cliente);
            
            //atualiza ou salva o endereço
            if(operacao == 1) persisteEndereco.atualizar(endereco);
            else persisteEndereco.salvar(endereco);
            
            cliente.setEndereco(endereco);
            //atualiza ou salva o funcionário
            if(operacao == 1)persisteCliente.atualizar(cliente);
            else {
                persisteCliente.salvar(cliente);
                posicao++;
            }
            
            JOptionPane.showMessageDialog(null, "CLIENTE SALVO COM SUCESSO");
            operacao = -1;
            return true;
            
        }
        
        return false;
    }
    
    public boolean operacaoExcluir(){
        persisteCliente.atualizar(listaClientes.get(posicao));
        listaClientes = persisteCliente.retornarClientes();
        exibirCliente();
        return true;
    }
    
    
    public void carregarFoto(){
        //Criação do FileChooser  
            JFileChooser fileChooser = new JFileChooser();  
            fileChooser.setDialogTitle("Importar imagem");  
            fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);  
            FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & PNG Images", new String[]{"jpg","png"});
            fileChooser.setFileFilter(filter);      
            fileChooser.setAcceptAllFileFilterUsed(false);    
            fileChooser.setMultiSelectionEnabled(false);
        
            //Abre a caixa para escolher a imagem  
            if (fileChooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION) {  
                return;
            }
            
            caminhoImagem = fileChooser.getSelectedFile().getAbsolutePath();
            ImageIcon imagem = new ImageIcon(caminhoImagem);
            labelFoto.setIcon(new ImageIcon(
                    imagem.getImage().getScaledInstance(labelFoto.getWidth(), labelFoto.getHeight(),Image.SCALE_DEFAULT))
                    );
    }
    
    public boolean validarFoto(){        
        try {
            File arquivo = new File(caminhoImagem);
            
            if(!arquivo.exists()){
                JOptionPane.showMessageDialog(null, "Alertamos que o cadastro do cliente está sem uma foto!", "Alerta"
                        , JOptionPane.WARNING_MESSAGE);
                pacienteTemp.setFoto(null);
                return true;
            }
            
            byte[] foto = new byte[(int)arquivo.length()];
            
            FileInputStream stream = new FileInputStream(arquivo);
            stream.read(foto);
            stream.close();
            
            pacienteTemp.setFoto(foto);
            
            return true;
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(null, "Imagem selecionada não pode ser lida!");
            return false;
        }
    }
    
    public void ativarCliente(){
        int resposta = JOptionPane.showConfirmDialog(null, "Deseja realmente reativar o cliente informado?", 
                "Confirmar Reativação", JOptionPane.YES_NO_OPTION);
        
        if(resposta == JOptionPane.YES_OPTION){
            listaClientes.get(posicao).setAtivo(true);
            persisteCliente.atualizar(listaClientes.get(posicao));
            mudouAtivo = true;
            ativarBotoesIniciar();
            
            exibirCliente();
        }
    }
    
    public void linkDadosCliente(){
        DadosCliente.cliente = listaClientes.get(posicao);
        DadosCliente dadosCliente = new DadosCliente(this, false);
        dadosCliente.setLocationRelativeTo(null);
        dadosCliente.setVisible(true);
    }
        
    public CadastroCliente() {
        initComponents();
        setLocationRelativeTo(null);
        inicializarTela();
    }
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        grupoFilhos = new javax.swing.ButtonGroup();
        grupoAtivo = new javax.swing.ButtonGroup();
        jPanelFormulario = new javax.swing.JPanel();
        jPainelBotoes = new javax.swing.JPanel();
        btnNovo = new javax.swing.JButton();
        btnEditar = new javax.swing.JButton();
        btnExcluir = new javax.swing.JButton();
        btnPesquisar = new javax.swing.JButton();
        btnSalvar = new javax.swing.JButton();
        btnCancelar = new javax.swing.JButton();
        btnSair = new javax.swing.JButton();
        Biometria = new javax.swing.JTabbedPane();
        jPainelDados = new javax.swing.JPanel();
        jLabel38 = new javax.swing.JLabel();
        txtProfissao = new javax.swing.JTextField();
        jLabel40 = new javax.swing.JLabel();
        jLabel44 = new javax.swing.JLabel();
        jLabel45 = new javax.swing.JLabel();
        jRadioFilhosSim = new javax.swing.JRadioButton();
        jRadioFilhoNao = new javax.swing.JRadioButton();
        txtQtdFilhos = new javax.swing.JTextField();
        jLClienteDesativado = new javax.swing.JLabel();
        jLCliqueAqui = new javax.swing.JLabel();
        txtMedicoResponsavel = new javax.swing.JTextField();
        jLabelIndicacao = new javax.swing.JLabel();
        txtIndicacao = new javax.swing.JTextField();
        jPainelPerfilCliente = new javax.swing.JPanel();
        jLabelQueixaPrincipal = new javax.swing.JLabel();
        txtQueixaPrincipal = new javax.swing.JTextArea();
        jPanelObservacoes = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtObservacao = new javax.swing.JTextArea();
        jPainelBiometria = new javax.swing.JPanel();
        jPanelIntoBiometria = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        btnBiometria = new javax.swing.JButton();
        jPanelPaciente = new javax.swing.JPanel();
        jLabel25 = new javax.swing.JLabel();
        jLabel21 = new javax.swing.JLabel();
        txtNome = new javax.swing.JTextField();
        jDateNascimento = new com.toedter.calendar.JDateChooser();
        txtNumero = new javax.swing.JTextField();
        txtCodigo = new javax.swing.JTextField();
        jLabel23 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        txtRG = new javax.swing.JTextField();
        txtEmail = new javax.swing.JTextField();
        jLabel22 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        txtBairro = new javax.swing.JTextField();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        txtCEP = new javax.swing.JFormattedTextField();
        jLabel24 = new javax.swing.JLabel();
        jLabel30 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        txtCidade = new javax.swing.JTextField();
        txtCPF = new javax.swing.JFormattedTextField();
        txtEndereco = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        txtTelefoneFixo = new javax.swing.JFormattedTextField();
        txtTelefoneCelular = new javax.swing.JFormattedTextField();
        txtTelefoneComercial = new javax.swing.JFormattedTextField();
        labelFoto = new javax.swing.JLabel();
        Foto = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        jLabelTextoDadosCliente = new javax.swing.JLabel();
        jLabelLinkDadosCliente = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("ERP BEAUTY CENTER - Cadastro Cliente");
        setResizable(false);

        jPanelFormulario.setBackground(new java.awt.Color(255, 255, 255));
        jPanelFormulario.setPreferredSize(new java.awt.Dimension(800, 535));

        jPainelBotoes.setPreferredSize(new java.awt.Dimension(800, 45));

        btnNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Novo.png"))); // NOI18N
        btnNovo.setToolTipText("NOVO");
        btnNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoActionPerformed(evt);
            }
        });

        btnEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Editar.png"))); // NOI18N
        btnEditar.setToolTipText("ALTERAR");
        btnEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEditarActionPerformed(evt);
            }
        });

        btnExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Excluir.png"))); // NOI18N
        btnExcluir.setToolTipText("Excluir");
        btnExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExcluirActionPerformed(evt);
            }
        });

        btnPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Pesquisar.png"))); // NOI18N
        btnPesquisar.setToolTipText("PESQUISAR");
        btnPesquisar.setBorderPainted(false);
        btnPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPesquisarActionPerformed(evt);
            }
        });

        btnSalvar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Salvar.png"))); // NOI18N
        btnSalvar.setToolTipText("SALVAR");
        btnSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSalvarActionPerformed(evt);
            }
        });

        btnCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Cancelar.png"))); // NOI18N
        btnCancelar.setToolTipText("LIMPAR");
        btnCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarActionPerformed(evt);
            }
        });

        btnSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/beautycenter/img/Sair.png"))); // NOI18N
        btnSair.setToolTipText("SAIR");
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPainelBotoesLayout = new javax.swing.GroupLayout(jPainelBotoes);
        jPainelBotoes.setLayout(jPainelBotoesLayout);
        jPainelBotoesLayout.setHorizontalGroup(
            jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
            .addGroup(jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPainelBotoesLayout.createSequentialGroup()
                    .addGap(0, 296, Short.MAX_VALUE)
                    .addComponent(btnNovo)
                    .addGap(5, 5, 5)
                    .addComponent(btnEditar)
                    .addGap(5, 5, 5)
                    .addComponent(btnExcluir)
                    .addGap(5, 5, 5)
                    .addComponent(btnPesquisar)
                    .addGap(5, 5, 5)
                    .addComponent(btnSalvar)
                    .addGap(5, 5, 5)
                    .addComponent(btnCancelar)
                    .addGap(5, 5, 5)
                    .addComponent(btnSair)
                    .addGap(0, 297, Short.MAX_VALUE)))
        );
        jPainelBotoesLayout.setVerticalGroup(
            jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 45, Short.MAX_VALUE)
            .addGroup(jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPainelBotoesLayout.createSequentialGroup()
                    .addGap(0, 0, Short.MAX_VALUE)
                    .addGroup(jPainelBotoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(btnNovo)
                        .addComponent(btnEditar)
                        .addComponent(btnExcluir)
                        .addComponent(btnPesquisar)
                        .addComponent(btnSalvar)
                        .addComponent(btnCancelar)
                        .addComponent(btnSair))
                    .addGap(0, 0, Short.MAX_VALUE)))
        );

        Biometria.setBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(51, 51, 255), null));

        jPainelDados.setBackground(new java.awt.Color(255, 255, 255));

        jLabel38.setText("PROFISSÃO:");

        jLabel40.setText("MÉDICO RESPONSÁVEL:");

        jLabel44.setText("QUANTIDADE DE FILHOS:");

        jLabel45.setText("FILHOS:");

        jRadioFilhosSim.setBackground(new java.awt.Color(255, 255, 255));
        grupoFilhos.add(jRadioFilhosSim);
        jRadioFilhosSim.setText("SIM");
        jRadioFilhosSim.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jRadioFilhosSimStateChanged(evt);
            }
        });
        jRadioFilhosSim.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                jRadioFilhosSimItemStateChanged(evt);
            }
        });
        jRadioFilhosSim.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioFilhosSimActionPerformed(evt);
            }
        });

        jRadioFilhoNao.setBackground(new java.awt.Color(255, 255, 255));
        grupoFilhos.add(jRadioFilhoNao);
        jRadioFilhoNao.setText("NÃO");

        jLClienteDesativado.setForeground(new java.awt.Color(255, 51, 51));
        jLClienteDesativado.setText("Funcionário desativado. Para ativá-lo, ");

        jLCliqueAqui.setForeground(new java.awt.Color(0, 51, 153));
        jLCliqueAqui.setText("clique aqui.");
        jLCliqueAqui.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        jLCliqueAqui.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLCliqueAquiMouseClicked(evt);
            }
        });

        jLabelIndicacao.setText("INDICAÇÃO:");

        javax.swing.GroupLayout jPainelDadosLayout = new javax.swing.GroupLayout(jPainelDados);
        jPainelDados.setLayout(jPainelDadosLayout);
        jPainelDadosLayout.setHorizontalGroup(
            jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPainelDadosLayout.createSequentialGroup()
                .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPainelDadosLayout.createSequentialGroup()
                        .addGap(104, 104, 104)
                        .addComponent(jLabel45))
                    .addGroup(jPainelDadosLayout.createSequentialGroup()
                        .addGap(27, 27, 27)
                        .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel40)
                            .addComponent(jLabel38)
                            .addComponent(jLabelIndicacao))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(txtProfissao, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPainelDadosLayout.createSequentialGroup()
                                .addComponent(jRadioFilhosSim)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jRadioFilhoNao)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel44)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtQtdFilhos, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(txtMedicoResponsavel)
                            .addComponent(txtIndicacao)))
                    .addGroup(jPainelDadosLayout.createSequentialGroup()
                        .addGap(110, 110, 110)
                        .addComponent(jLClienteDesativado)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLCliqueAqui)))
                .addContainerGap(361, Short.MAX_VALUE))
        );
        jPainelDadosLayout.setVerticalGroup(
            jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPainelDadosLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtProfissao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel38))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel45)
                    .addComponent(jRadioFilhosSim)
                    .addComponent(jRadioFilhoNao)
                    .addComponent(jLabel44)
                    .addComponent(txtQtdFilhos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(7, 7, 7)
                .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel40)
                    .addComponent(txtMedicoResponsavel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelIndicacao)
                    .addComponent(txtIndicacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
                .addGroup(jPainelDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLClienteDesativado)
                    .addComponent(jLCliqueAqui))
                .addGap(27, 27, 27))
        );

        Biometria.addTab("Dados", jPainelDados);

        jPainelPerfilCliente.setBackground(new java.awt.Color(255, 255, 255));

        jLabelQueixaPrincipal.setText("QUEIXA PRINCIPAL:");

        txtQueixaPrincipal.setColumns(100);
        txtQueixaPrincipal.setRows(5);
        txtQueixaPrincipal.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        txtQueixaPrincipal.setPreferredSize(new java.awt.Dimension(480, 94));

        javax.swing.GroupLayout jPainelPerfilClienteLayout = new javax.swing.GroupLayout(jPainelPerfilCliente);
        jPainelPerfilCliente.setLayout(jPainelPerfilClienteLayout);
        jPainelPerfilClienteLayout.setHorizontalGroup(
            jPainelPerfilClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPainelPerfilClienteLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelQueixaPrincipal)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtQueixaPrincipal, javax.swing.GroupLayout.DEFAULT_SIZE, 644, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPainelPerfilClienteLayout.setVerticalGroup(
            jPainelPerfilClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPainelPerfilClienteLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPainelPerfilClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPainelPerfilClienteLayout.createSequentialGroup()
                        .addComponent(jLabelQueixaPrincipal)
                        .addGap(0, 128, Short.MAX_VALUE))
                    .addComponent(txtQueixaPrincipal, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        Biometria.addTab("Perfil do Cliente", jPainelPerfilCliente);

        txtObservacao.setColumns(20);
        txtObservacao.setRows(5);
        jScrollPane1.setViewportView(txtObservacao);

        javax.swing.GroupLayout jPanelObservacoesLayout = new javax.swing.GroupLayout(jPanelObservacoes);
        jPanelObservacoes.setLayout(jPanelObservacoesLayout);
        jPanelObservacoesLayout.setHorizontalGroup(
            jPanelObservacoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 766, Short.MAX_VALUE)
            .addGroup(jPanelObservacoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 766, Short.MAX_VALUE))
        );
        jPanelObservacoesLayout.setVerticalGroup(
            jPanelObservacoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 164, Short.MAX_VALUE)
            .addGroup(jPanelObservacoesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 164, Short.MAX_VALUE))
        );

        Biometria.addTab("Observações", jPanelObservacoes);

        jPanelIntoBiometria.setBackground(new java.awt.Color(255, 255, 255));

        jPanel3.setBackground(new java.awt.Color(0, 0, 0));

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 150, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 125, Short.MAX_VALUE)
        );

        btnBiometria.setText("Capturar Biometria");
        btnBiometria.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBiometriaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanelIntoBiometriaLayout = new javax.swing.GroupLayout(jPanelIntoBiometria);
        jPanelIntoBiometria.setLayout(jPanelIntoBiometriaLayout);
        jPanelIntoBiometriaLayout.setHorizontalGroup(
            jPanelIntoBiometriaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelIntoBiometriaLayout.createSequentialGroup()
                .addGap(66, 66, 66)
                .addGroup(jPanelIntoBiometriaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelIntoBiometriaLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(btnBiometria))
                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(550, Short.MAX_VALUE))
        );
        jPanelIntoBiometriaLayout.setVerticalGroup(
            jPanelIntoBiometriaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelIntoBiometriaLayout.createSequentialGroup()
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btnBiometria)
                .addGap(0, 10, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPainelBiometriaLayout = new javax.swing.GroupLayout(jPainelBiometria);
        jPainelBiometria.setLayout(jPainelBiometriaLayout);
        jPainelBiometriaLayout.setHorizontalGroup(
            jPainelBiometriaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanelIntoBiometria, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPainelBiometriaLayout.setVerticalGroup(
            jPainelBiometriaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanelIntoBiometria, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        Biometria.addTab("Biometria", jPainelBiometria);

        jPanelPaciente.setBackground(new java.awt.Color(255, 255, 255));
        jPanelPaciente.setPreferredSize(new java.awt.Dimension(800, 350));

        jLabel25.setText("DATA NASCIMENTO:");

        jLabel21.setForeground(new java.awt.Color(51, 51, 255));
        jLabel21.setText("NOME:");

        txtNome.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtNomeKeyPressed(evt);
            }
        });

        jDateNascimento.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jDateNascimentoKeyPressed(evt);
            }
        });

        txtNumero.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtNumeroKeyPressed(evt);
            }
        });

        jLabel23.setText("CIDADE:");

        jLabel5.setText("R.G:");

        txtRG.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtRGKeyPressed(evt);
            }
        });

        jLabel22.setText("ENDEREÇO:");

        jLabel2.setText("Nº:");

        jLabel28.setText("CELULAR:");

        txtBairro.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtBairroKeyPressed(evt);
            }
        });

        jLabel26.setText("CPF:");

        jLabel27.setText("FIXO:");

        try {
            txtCEP.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###-###")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtCEP.setText("36.240-000");
        txtCEP.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCEPKeyPressed(evt);
            }
        });

        jLabel24.setText("CEP:");

        jLabel30.setText("E-MAIL:");

        jLabel29.setText("COMERCIAL:");

        txtCidade.setText("SANTOS DUMONT");
        txtCidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCidadeKeyPressed(evt);
            }
        });

        try {
            txtCPF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtCPF.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCPFKeyPressed(evt);
            }
        });

        txtEndereco.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtEnderecoKeyPressed(evt);
            }
        });

        jLabel4.setText("BAIRRO:");

        try {
            txtTelefoneFixo.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtTelefoneFixo.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtTelefoneFixoKeyPressed(evt);
            }
        });

        try {
            txtTelefoneCelular.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtTelefoneCelular.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtTelefoneCelularKeyPressed(evt);
            }
        });

        try {
            txtTelefoneComercial.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        txtTelefoneComercial.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtTelefoneComercialKeyPressed(evt);
            }
        });

        labelFoto.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        Foto.setText("Capturar Foto");
        Foto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                FotoActionPerformed(evt);
            }
        });

        jLabel3.setText("CÓDIGO:");

        jLabelTextoDadosCliente.setText("Para acessar os pacotes e exames desse cliente, ");

        jLabelLinkDadosCliente.setForeground(new java.awt.Color(0, 51, 153));
        jLabelLinkDadosCliente.setText("clique aqui.");
        jLabelLinkDadosCliente.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        jLabelLinkDadosCliente.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabelLinkDadosClienteMouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanelPacienteLayout = new javax.swing.GroupLayout(jPanelPaciente);
        jPanelPaciente.setLayout(jPanelPacienteLayout);
        jPanelPacienteLayout.setHorizontalGroup(
            jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelPacienteLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelPacienteLayout.createSequentialGroup()
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel21)
                            .addComponent(jLabel3)
                            .addComponent(jLabel22)
                            .addComponent(jLabel4)
                            .addComponent(jLabel23)
                            .addComponent(jLabel26)
                            .addComponent(jLabel27)
                            .addComponent(jLabel30))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanelPacienteLayout.createSequentialGroup()
                                .addComponent(txtCPF, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtRG, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel25)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jDateNascimento, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanelPacienteLayout.createSequentialGroup()
                                .addComponent(txtTelefoneFixo, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel28)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtTelefoneCelular, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel29)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtTelefoneComercial, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 300, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanelPacienteLayout.createSequentialGroup()
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(txtEndereco)
                                    .addComponent(txtNome, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanelPacienteLayout.createSequentialGroup()
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(txtBairro, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(txtCidade, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel24)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(txtCEP, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(jPanelPacienteLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jLabelTextoDadosCliente)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelLinkDadosCliente)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(labelFoto, javax.swing.GroupLayout.PREFERRED_SIZE, 260, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(20, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelPacienteLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(Foto, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(87, 87, 87))
        );
        jPanelPacienteLayout.setVerticalGroup(
            jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelPacienteLayout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanelPacienteLayout.createSequentialGroup()
                        .addComponent(labelFoto, javax.swing.GroupLayout.PREFERRED_SIZE, 235, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Foto))
                    .addGroup(jPanelPacienteLayout.createSequentialGroup()
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel3)
                            .addComponent(txtCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(jPanelPacienteLayout.createSequentialGroup()
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel21)
                                    .addComponent(txtNome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel22, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(txtEndereco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel2)
                                    .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel4)
                                    .addComponent(txtBairro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel23)
                                    .addComponent(txtCidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel24)
                                    .addComponent(txtCEP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel26)
                                    .addComponent(txtCPF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel5)
                                .addComponent(txtRG, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jDateNascimento, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel27)
                            .addComponent(txtTelefoneFixo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel28)
                            .addComponent(txtTelefoneCelular, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel29)
                            .addComponent(txtTelefoneComercial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel30)
                            .addComponent(txtEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(30, 30, 30)
                        .addGroup(jPanelPacienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelTextoDadosCliente)
                            .addComponent(jLabelLinkDadosCliente))))
                .addGap(89, 89, 89))
        );

        javax.swing.GroupLayout jPanelFormularioLayout = new javax.swing.GroupLayout(jPanelFormulario);
        jPanelFormulario.setLayout(jPanelFormularioLayout);
        jPanelFormularioLayout.setHorizontalGroup(
            jPanelFormularioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPainelBotoes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(jPanelFormularioLayout.createSequentialGroup()
                .addComponent(jPanelPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
            .addGroup(jPanelFormularioLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(Biometria, javax.swing.GroupLayout.PREFERRED_SIZE, 775, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanelFormularioLayout.setVerticalGroup(
            jPanelFormularioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelFormularioLayout.createSequentialGroup()
                .addComponent(jPainelBotoes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Biometria, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 28, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanelFormulario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanelFormulario, javax.swing.GroupLayout.DEFAULT_SIZE, 556, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btnNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovoActionPerformed
        novo();
    }//GEN-LAST:event_btnNovoActionPerformed

    private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalvarActionPerformed
        if(preencherCliente()){
            try{
                inicializarTela();
            }catch(Exception e){
                JOptionPane.showMessageDialog(rootPane, "Erro ao salvar o Cliente, necessario acionar o suporte");
            }
            
        }
    }//GEN-LAST:event_btnSalvarActionPerformed

    private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPesquisarActionPerformed
        PesquisarPaciente pesquisar = new PesquisarPaciente(this, true);
        pesquisar.setLocationRelativeTo(null);
        pesquisar.setVisible(true);
        
        ativarBotoesIniciar();
    }//GEN-LAST:event_btnPesquisarActionPerformed

    private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEditarActionPerformed
        editar();
    }//GEN-LAST:event_btnEditarActionPerformed

    private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
        cancelar();
    }//GEN-LAST:event_btnCancelarActionPerformed

    private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSairActionPerformed
        dispose();
    }//GEN-LAST:event_btnSairActionPerformed

    private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExcluirActionPerformed
        excluir();
    }//GEN-LAST:event_btnExcluirActionPerformed

    private void FotoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FotoActionPerformed
        carregarFoto();
    }//GEN-LAST:event_FotoActionPerformed

    private void btnBiometriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBiometriaActionPerformed
        VariaveisBiometria biometria = new VariaveisBiometria(listaClientes.get(posicao));
        new CadastrarDigital(
            this,
            VariaveisBiometria.maxCount.getNumber().intValue(),
            null,
            biometria.getTemplates(),
            listaClientes.get(posicao)
        ).setVisible(true);
        
        listaClientes.set(posicao, persisteCliente.retornarClientePeloID(listaClientes.get(posicao)));
    }//GEN-LAST:event_btnBiometriaActionPerformed

    private void jRadioFilhosSimActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioFilhosSimActionPerformed

    }//GEN-LAST:event_jRadioFilhosSimActionPerformed

    private void jRadioFilhosSimItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jRadioFilhosSimItemStateChanged
        if(jRadioFilhosSim.isSelected()){
            txtQtdFilhos.setEnabled(true);
        }else{
            txtQtdFilhos.setEnabled(false);
        }
    }//GEN-LAST:event_jRadioFilhosSimItemStateChanged

    private void jRadioFilhosSimStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jRadioFilhosSimStateChanged
        if(jRadioFilhosSim.isSelected()){
            txtQtdFilhos.setEnabled(true);
        }else{
            txtQtdFilhos.setEnabled(false);
        }
    }//GEN-LAST:event_jRadioFilhosSimStateChanged

    private void jLCliqueAquiMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLCliqueAquiMouseClicked
        ativarCliente();
    }//GEN-LAST:event_jLCliqueAquiMouseClicked

    private void jLabelLinkDadosClienteMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabelLinkDadosClienteMouseClicked
        linkDadosCliente();
    }//GEN-LAST:event_jLabelLinkDadosClienteMouseClicked

    private void txtNomeKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNomeKeyPressed
       if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtEndereco.requestFocus();
         }
    }//GEN-LAST:event_txtNomeKeyPressed

    private void txtEnderecoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtEnderecoKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtNumero.requestFocus();
         }
    }//GEN-LAST:event_txtEnderecoKeyPressed

    private void txtNumeroKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNumeroKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtBairro.requestFocus();
         }
    }//GEN-LAST:event_txtNumeroKeyPressed

    private void txtBairroKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtBairroKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtCidade.requestFocus();
         }
    }//GEN-LAST:event_txtBairroKeyPressed

    private void txtCidadeKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCidadeKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtCEP.requestFocus();
         }
    }//GEN-LAST:event_txtCidadeKeyPressed

    private void txtCEPKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCEPKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtCPF.requestFocus();
         }
    }//GEN-LAST:event_txtCEPKeyPressed

    private void txtCPFKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCPFKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtRG.requestFocus();
         }
    }//GEN-LAST:event_txtCPFKeyPressed

    private void txtRGKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtRGKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             jDateNascimento.requestFocus();
         }
    }//GEN-LAST:event_txtRGKeyPressed

    private void jDateNascimentoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jDateNascimentoKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtTelefoneFixo.requestFocus();
         }
    }//GEN-LAST:event_jDateNascimentoKeyPressed

    private void txtTelefoneFixoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTelefoneFixoKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtTelefoneCelular.requestFocus();
         }
    }//GEN-LAST:event_txtTelefoneFixoKeyPressed

    private void txtTelefoneCelularKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTelefoneCelularKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtTelefoneComercial.requestFocus();
         }
    }//GEN-LAST:event_txtTelefoneCelularKeyPressed

    private void txtTelefoneComercialKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtTelefoneComercialKeyPressed
        if (evt.getKeyCode() == KeyEvent.VK_ENTER){
             txtEmail.requestFocus();
         }
    }//GEN-LAST:event_txtTelefoneComercialKeyPressed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTabbedPane Biometria;
    private javax.swing.JButton Foto;
    private javax.swing.JButton btnBiometria;
    private javax.swing.JButton btnCancelar;
    private javax.swing.JButton btnEditar;
    private javax.swing.JButton btnExcluir;
    private javax.swing.JButton btnNovo;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JButton btnSair;
    private javax.swing.JButton btnSalvar;
    private javax.swing.ButtonGroup grupoAtivo;
    private javax.swing.ButtonGroup grupoFilhos;
    private com.toedter.calendar.JDateChooser jDateNascimento;
    private javax.swing.JLabel jLClienteDesativado;
    private javax.swing.JLabel jLCliqueAqui;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel44;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabelIndicacao;
    private javax.swing.JLabel jLabelLinkDadosCliente;
    private javax.swing.JLabel jLabelQueixaPrincipal;
    private javax.swing.JLabel jLabelTextoDadosCliente;
    private javax.swing.JPanel jPainelBiometria;
    private javax.swing.JPanel jPainelBotoes;
    private javax.swing.JPanel jPainelDados;
    private javax.swing.JPanel jPainelPerfilCliente;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanelFormulario;
    private javax.swing.JPanel jPanelIntoBiometria;
    private javax.swing.JPanel jPanelObservacoes;
    private javax.swing.JPanel jPanelPaciente;
    private javax.swing.JRadioButton jRadioFilhoNao;
    private javax.swing.JRadioButton jRadioFilhosSim;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel labelFoto;
    private javax.swing.JTextField txtBairro;
    private javax.swing.JFormattedTextField txtCEP;
    private javax.swing.JFormattedTextField txtCPF;
    private javax.swing.JTextField txtCidade;
    private javax.swing.JTextField txtCodigo;
    private javax.swing.JTextField txtEmail;
    private javax.swing.JTextField txtEndereco;
    private javax.swing.JTextField txtIndicacao;
    private javax.swing.JTextField txtMedicoResponsavel;
    private javax.swing.JTextField txtNome;
    private javax.swing.JTextField txtNumero;
    private javax.swing.JTextArea txtObservacao;
    private javax.swing.JTextField txtProfissao;
    private javax.swing.JTextField txtQtdFilhos;
    private javax.swing.JTextArea txtQueixaPrincipal;
    private javax.swing.JTextField txtRG;
    private javax.swing.JFormattedTextField txtTelefoneCelular;
    private javax.swing.JFormattedTextField txtTelefoneComercial;
    private javax.swing.JFormattedTextField txtTelefoneFixo;
    // End of variables declaration//GEN-END:variables
}